package pcsr.hwVirtualization;

/**
 * The class <code>Actuator</code> implements this interface to provide synchronous access to actuator state.
 * Also define the way to change actuator's state.
 * 
 * @author Paulo Fagundes
 *
 * @see Actuator
 */
public interface IActuatorActions {

	/**
	 * Gets a refreshed status of this Actuator.
	 * @return Refreshed status.
	 * @see Actuator
	 */
	Actuator GetActuatorStatus( );
	
	/**
	 * Defines a new value for the Actuator.
	 * @param actuatorValue New Actuator value.
	 * @see Actuator
	 * @see ActuatorValue
	 */
	void SetActuatorValue( final ActuatorValue actuatorValue );
	
	/**
	 * Defines a new operating mode for the Actuator.
	 * @param actuatorMode New Actuator operating mode.
	 * @see Actuator
	 * @see ActuatorMode
	 */
	void SetActuatorMode( final ActuatorMode actuatorMode );
	
	
}
